﻿using CNKI.TPI.Web.Base;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace CNKI.TPI.Web.UI.Filters
{
    public class CustActionFilter : ActionFilterAttribute
    {
        private Stopwatch sw = null;
        //
        // 摘要:
        //     在调用操作方法前调用。
        //
        // 参数:
        //   filterContext:
        //     有关当前请求和操作的信息。
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            string controller = filterContext.RouteData.Values["controller"].ToString();
            string action = filterContext.RouteData.Values["action"].ToString();
            LogOpr.Info(0, 0, controller + "Controller", action, "", "", "Recive request = " + filterContext.HttpContext.Request.Url);
            if (LogOpr.IsLogEnabled(CNKI.TPI.Web.Base.LogOpr.LogLevel.Debug))
            {
                Stopwatch sw = new Stopwatch();
                sw.Start();
            }
        }
        //
        // 摘要:
        //     在调用操作方法后调用。
        //
        // 参数:
        //   filterContext:
        //     有关当前请求和操作的信息。
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            if (LogOpr.IsLogEnabled(CNKI.TPI.Web.Base.LogOpr.LogLevel.Debug))
            {
                sw.Stop();
                string controller = filterContext.RouteData.Values["controller"].ToString();
                string action = filterContext.RouteData.Values["action"].ToString();
                LogOpr.Debug(1, sw.ElapsedMilliseconds, controller + "Controller", action, "", "", "End request");
            }
        }
    }
}